1. Field of the Invention
This invention relates generally to digital communication systems and methods, and more particularly to phase, frequency and gain characterization and mitigation in SCDMA burst receivers using multi-pass data processing.
2. Description of the Prior Art
Data-Over-Cable Service Interface Specifications (DOCSIS) is a standard for data communication over cable TV infrastructure. This standard is published by CableLabs, a North American consortium founded by members of the cable TV industry. DOCSIS 2.0 was published on Dec. 31, 2001, and includes several important modifications to the previous version, 1.1. One of the most important additions is SCDMA mode in the upstream channel, which is discussed herein below.
The cable network consists of multiple clients (CMs—Cable Modems) connected to the central station (CMTS—Cable Modem Termination System). All clients in a certain region share the same cable infrastructure (similar to sharing the radio spectrum in radio transmission).
The cable spectrum is divided into upstream (from the CM to the CMTS, in frequency range 5–42 MHz) and downstream (CMTS to CM, frequency 50 MHz and above). The more complicated part is the upstream, since there are many transmitters, which need to be synchronized in order to avoid collisions.
The physical layer implementation of the upstream receiver, in the CMTS is critical for identification, characterization and compensation of impairments, especially for burst reception applications. The physical layer is described in chapter 6 of the DOCSIS specification, and the upstream is described in sub-chapter 6.2.
Upstream channels are located in the range of 5-42MHz, as stated herein before. In that range, there can be several different channels (FDMA—Frequency Division Multiple Access). Each channel includes many CMs, which transmit short bursts (and not a continuous transmission). The bursts are multiplexed using one of 2 methods:    1. TDMA—Time Division Multiple Access—bursts are transmitted in different times, synchronized by the CMTS.    2. SCDMA—Synchronized Code Division Multiple Access—bursts from several CMs are multiplied by different sets of orthogonal codes, and transmitted simultaneously.
FIG. 1 illustrates a CM upstream transmitter; while FIG. 2 illustrates a CMTS upstream receiver.
When transmitting in SCDMA, the time line is divided into frames. Each frame has 128 rows, wherein each row corresponds to a different code. Each column in the frame is called a spreading interval. The number of spreading intervals per frame (abbreviated spif) can change, depending on the transmission parameters. FIG. 3 emphasizes the relationship between frames, codes, mini-slots and spreading intervals.
The number of cells in each frame is spif*codes_num. In each cell in the frame there is a single symbol, which is represented as a complex number, or an I-Q pair (In-phase and Quadrature, or real and imaginary parts), and matches the constellation chosen for the burst.
Each CM that wants to transmit is assigned a certain number of mini-slots. Each mini-slot consists of a number of codes in a specific frame.
Before transmitting, the frames are passed through a spreader. The spreader takes each spreading interval (a vector of 128 symbols), and multiplies it with the spreading matrix—a matrix the size of 128×128:pk=sk·CEach row in the spreading matrix C is a code, and each entry is +1 or −1. The codes are orthogonal, so C is invertible:
      C          -      1        =                              1          128                ⁢                  C          t                    ⇒                        1                      128            ⁢                                                                ⁢                  C          ·                      C            t                                =          I              128        ×        128            The sk term is a vector which contains the 128 information symbols of the k'th spreading interval.
The result of the multiplication, pk, is a vector of chips. FIG. 4 shows the symbols and chips in the complex plane. Note that the symbols correspond to the chosen constellation (in this case 16-QAM), while the chips are scattered:
The chips are then transmitted sequentially. All the CMs that were allocated mini-slots in the current frame transmit their chips simultaneously; hence the chips received in the CMTS receiver are the sum of all transmitted chips.
            p      _        k    received    =            ∑              i        ∈        CMs              ⁢                  p        _            k      i      The receiver multiplies the received chips with the inverted spreading matrix Ct, and restores the original transmitted symbols. This action is done in the despreader:
                    s        ⋒            _        k    =                    1        128            ⁢                                    p            _                    k          received                ·                  C          t                      =                            1          128                ⁢                              ∑                          i              ∈              CMs                                ⁢                                                    p                _                            k              i                        ·                          C              t                                          =                                    1            128                    ⁢                                    ∑                              i                ∈                CMs                                      ⁢                                                            s                  _                                k                i                            ·              C              ·                              C                t                                                    =                              ∑                          i              ∈              CMs                                ⁢                                    s              _                        k            i                              Note that the resulting symbols vector {circumflex over (s)}k is the sum of all the vectors of the transmitting CMs; but since each CM is assigned different rows, there's no collision between symbols. For example, if CM #1 is assigned codes 0 through 63, and CM #2 is assigned codes 64 through 127, then sk1 is only non-zero in indices 0 . . . 63, and sk2 is in indices 64 . . . 127, so there's no collision in ŝk (which is the sum of both vectors).
The basic idea behind spreading is to “spread” the signal on a larger frequency span. After despreading, the signal is back to its original from, and added narrowband interferences are “spread”, as shown in FIG. 5.
Each burst begins with a set of pre-defined symbols, called a preamble. The preamble enables the receiver to obtain a rough estimation on the burst's impairments, such as gain, phase and frequency offsets, by comparing the received symbols to the known preamble symbols that were actually transmitted.
In summary explanation of the above, a high-level receiver algorithm    1. Performs down-conversion and reduces signal rate to the chips rate;    2. Despreads the chips, one spreading interval at a time;    3. Stores the symbols in the deframer, until an entire frame has arrived; and    4. For each burst in the current frame:
a. Processes the preamble to get an initial estimate of the gain, frequency and phase offsets;
b. Passes the burst through the big-loop for a fine track and fix of the gain, phase and frequency offsets. The “fixed” symbols are written back to the deframer's memory; and
c. Outputs the burst for symbol de-mapping and channel decoding.
The transmitted signal is modulated over a carrier frequency. Synchronization mismatch between the transmitter and the receiver may cause phase and frequency offsets in the received signal. Unless dealt with, these offsets will cause errors in the transmission.
Phase offset causes all the received symbols to appear with a constant phase shift. Frequency offset causes the symbols to appear with a changing phase shift, as can be seen in FIG. 6.
Phase and frequency offsets are parameters that can be tracked from the received symbols, using a Phase Lock Loop (PLL). FIG. 7 shows a basic diagram of a PLL. This is a 2nd order PLL that tracks the symbols' phase (the 2nd order loop is required due to the existence of both frequency and phase offsets).
Without the 2nd order loop (frequency estimation, shown in the lower part of FIG. 7), the PLL would only be able to track signals with no frequency offset. If there were a frequency offset, the PLL would be able to eliminate it, but have a constant phase error. Thus, the need for a 2nd order loop—to estimate the frequency offset, and add it to the phase estimation.
The design of the basic PLL is based on the assumption that the symbols are entering the loop in the same order as they were transmitted. This is especially important for the frequency estimation, as we can see that the frequency correction is added to the phase estimation in every clock tick (i.e. new symbol).
When using SCDMA, the phase and frequency offsets affect the chips instead of the symbols. However, using an ordinary PLL on the chips (before despreading) is impossible, since it requires slicer decisions while the chips are scattered and does not comply with a constellation; so there's no way to estimate the phase offset of each chip.
Using a PLL after the despreader poses a new problem: the symbols are organized in frames, and are no longer serial in time. Without spreading, a frequency offset is manifested in a linear change of the phase, but after the despreader one sees a different picture:
In FIG. 8, three consecutive spreading intervals of 16-QAM symbols (a total of 3*128=384 symbols) in their original form (1), are seen after spreading (2), adding a frequency offset (3) and despreading (4). It's possible to see that the symbols after despreading no longer have a linear phase, but are divided to 3 groups, each group corresponding to a spreading interval. When comparing the phase of the symbols to the transmitted ones, one sees the picture depicted in FIG. 9.
In FIG. 9, one can see that the chips' phase after adding the frequency offset is linear, as expected, but the symbols' phase forms “steps”, in which each step corresponds to a spreading interval. The average phase of the symbols in each spreading interval is similar to the average phase of the chips, but it does not change linearly. The reason one sees these steps is that each symbol in spreading interval k is a linear combination of all 128 chips of that spreading interval, and is therefore affected by all 128 different phases.
The result is groups of 128 symbols with approximately the same phase, and the phase difference between successive groups is 128×phase_offset_per_chip. This complicates the phase offset tracking since the loop needs to track an impairment 128 times larger than it should have, in case SCDMA was not used. Also, since the “adding” of a frequency offset is not a linear action (multiply each chip by a growing exponent), one cannot model the change in phase as a linear process.
In view of the foregoing, it is both desirable and advantageous to provide a mechanism for phase and frequency tracking in a SCDMA channel that overcomes the above problems. This mechanism should provide phase, frequency and gain characterization and mitigation in a SCDMA burst receiver via use of dedicated phase and frequency correction loops implemented to deal with the unique characteristics of a SCDMA signal.